#region Using directives
using System;
using Microsoft.Xna.Framework.Content;
#endregion

namespace SharpWind.Resources
{
	public abstract class Resource : IDisposable
	{
		#region Constructor

		public Resource()
		{
			Engine.Instance.Garbage.Add( this );
		}

		#endregion

		#region Methods

		internal virtual void LoadContent( ContentManager contentManager )
		{
		}

		public void Dispose()
		{
			Dispose( true );
			GC.SuppressFinalize( this );
		}

		protected virtual void Dispose( bool disposing )
		{
		}

		#endregion
	}
}
